home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / Bonus / VCLZip / kp222_b4.exe / kpSStrm.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-23  |  2.8 KB  |  85 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'kpSStrm.pas' rev: 4.00
  6.  
  7. #ifndef kpSStrmHPP
  8. #define kpSStrmHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #include <SysUtils.hpp>    // Pascal unit
  13. #include <Classes.hpp>    // Pascal unit
  14. #include <Windows.hpp>    // Pascal unit
  15. #include <SysInit.hpp>    // Pascal unit
  16. #include <System.hpp>    // Pascal unit
  17.  
  18. //-- user supplied -----------------------------------------------------------
  19.  
  20. namespace Kpsstrm
  21. {
  22. //-- type declarations -------------------------------------------------------
  23. #pragma option push -b-
  24. enum TS_BufferState { bsUnknown, bsRead, bsWrite };
  25. #pragma option pop
  26.  
  27. class DELPHICLASS TS_BufferStream;
  28. #pragma pack(push, 4)
  29. class PASCALIMPLEMENTATION TS_BufferStream : public Classes::TStream 
  30. {
  31.     typedef Classes::TStream inherited;
  32.     
  33. private:
  34.     Classes::TStream* fStream;
  35.     char *fBuffer;
  36.     char *fBufPtr;
  37.     char *fBufEnd;
  38.     unsigned fBufSize;
  39.     TS_BufferState fState;
  40.     bool fFlushOnDestroy;
  41.     bool fWritten;
  42.     Classes::TNotifyEvent fOnFillBuffer;
  43.     Classes::TNotifyEvent fOnFlushBuffer;
  44.     int __fastcall GetBufPosition(void);
  45.     
  46. protected:
  47.     virtual bool __fastcall FillBuffer(void);
  48.     virtual bool __fastcall FlushBuffer(void);
  49.     virtual void __fastcall PutBack(char Ch);
  50.     virtual void __fastcall AfterFillBuffer(void);
  51.     virtual void __fastcall AfterFlushBuffer(void);
  52.     __property char * Buffer = {read=fBuffer};
  53.     __property char * BufPtr = {read=fBufPtr};
  54.     __property unsigned BufSize = {read=fBufSize, nodefault};
  55.     __property char * BufEnd = {read=fBufEnd};
  56.     __property int BufPosition = {read=GetBufPosition, nodefault};
  57.     __property TS_BufferState State = {read=fState, nodefault};
  58.     __property Classes::TStream* Stream = {read=fStream};
  59.     
  60. public:
  61.     __fastcall virtual TS_BufferStream(Classes::TStream* Stream, int BufferSize);
  62.     __fastcall virtual ~TS_BufferStream(void);
  63.     virtual int __fastcall Read(void *Buffer, int Count);
  64.     virtual int __fastcall Write(const void *Buffer, int Count);
  65.     virtual int __fastcall Seek(int Offset, Word Origin);
  66.     bool __fastcall IsEof(void);
  67.     __property bool FlushOnDestroy = {read=fFlushOnDestroy, write=fFlushOnDestroy, default=0};
  68.     __property Classes::TNotifyEvent OnFillBuffer = {read=fOnFillBuffer, write=fOnFillBuffer};
  69.     __property Classes::TNotifyEvent OnFlushBuffer = {read=fOnFlushBuffer, write=fOnFlushBuffer};
  70. };
  71.  
  72. #pragma pack(pop)
  73.  
  74. //-- var, const, procedure ---------------------------------------------------
  75.  
  76. }    /* namespace Kpsstrm */
  77. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  78. using namespace Kpsstrm;
  79. #endif
  80. #pragma option pop    // -w-
  81.  
  82. #pragma delphiheader end.
  83. //-- end unit ----------------------------------------------------------------
  84. #endif    // kpSStrm
  85.